package com.ganmiao.server.user.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ganmiao.entity.BaseColumns;
import com.ganmiao.server.sys.validated.Add;
import com.ganmiao.server.sys.validated.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 用户地址
 * @TableName user_address
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("用户地址")
@TableName(value = "user_address")
public class UserAddress extends BaseColumns implements Serializable {

    /**
     * 用户地址主键ID
     */
    @TableId(type = IdType.AUTO)
    @NotNull(groups = Update.class, message = "用户地址ID不能为空")
    @ApiModelProperty("用户地址主键ID")
    private Integer addressId;

    /**
     * 用户ID
     */
    @ApiModelProperty("用户ID")
    private Integer userId;

    /**
     * 用户名称
     */
    @NotNull(groups = {Add.class, Update.class}, message = "联系人为空")
    @ApiModelProperty("用户名称")
    private String contactName;

    /**
     * 手机号
     */
    @NotNull(groups = {Add.class, Update.class}, message = "联系电话不能为空")
    @ApiModelProperty("联系电话")
    private String contactPhone;

    /**
     * 帐号状态 (1:正常 9:删除/失效)
     */
    @ApiModelProperty("帐号状态 (1:正常 9:删除/失效)")
    private Integer status;

    /**
     * 是否默认：0否，1是
     */
    @NotBlank(groups = {Add.class, Update.class}, message = "是否默认不能为空")
    @ApiModelProperty("是否默认：0否，1是")
    private Integer isDefault;

    /**
     * 学校ID
     */
    @NotNull(groups = {Add.class, Update.class}, message = "学校ID不能为空")
    @ApiModelProperty("学校ID")
    private Integer schoolId;

    /**
     * 详细地址
     */
    @NotNull(groups = {Add.class, Update.class}, message = "详细地址不能为空")
    @ApiModelProperty("详细地址")
    private String address;

    /**
     * 经度
     */
    @ApiModelProperty("经度")
    private String longitude;

    /**
     * 维度
     */
    @ApiModelProperty("维度")
    private String latitude;
}